const { app } = require('electron')
const AdmZip = require('adm-zip')
const axios = require('axios')
const fs = require('fs')
const path = require('path')
import Config from '../renderer/src/config'

// 增量更新包的下载地址
const resourceUrl = Config.baseApiUrl

const checkForUpdates = (cb) => {
  axios({
    url: `${resourceUrl}package.json` // 请求package.json，与本地对比版本号
  }).then((response) => {
    try {
      const { version } = response.data
      console.log(version)
      /**
       * app.getVersion() 返回开发中的 Electron 版本号
       */
      const localVersion = app.getVersion()
      // 版本号变更
      if (version !== localVersion) {
        axios({
          url: `${resourceUrl}/app.zip`,
          responseType: 'arraybuffer'
        })
          .then((response) => {
            // 保存下载的增量更新包到本地
            const incrementalUpdateFilePath = path.join('./resources', 'app-update.zip')
            fs.writeFileSync(incrementalUpdateFilePath, response.data)

            // 解压缩增量更新包
            const incrementalZip = new AdmZip(incrementalUpdateFilePath)
            incrementalZip.extractAllTo('./resources', true)
            cb && cb()
            console.log('增量更新已应用')
          })
          .catch((error) => {
            console.error('增量更新下载失败:', error)
          })
      }
    } catch (err) {
      console.log(err)
    }
  })
}
export { checkForUpdates }
